<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');
require_once ('./application/controllers/authenticate.php');

class Contact extends Authenticate {

    const CONTACT_PER_PAGE = 100;
    const CONTACT_PAGE_RANGE = 5;

    function __construct() {
        global $active_system_function;
        $active_system_function = 'admin/site/contact/index';
        parent::__construct();
        $this->load->model('site_contact_model');
    }

    protected function _eventLoadLayout() {
        $this->page['title'] = 'Quản lý thông tin liên hệ';
        $this->module['title'] = 'Quản lý thông tin liên hệ';
    }

    function index() {
        try {
            $data = $this->_initData();
            $data['mode'] = 'grid';
            $this->setPageContent('admin/site/contact/grid', $data);
            $this->renderLayout('layouts/fullcolumn');
        } catch (Exception $ex) {
            echo $ex->getMessage();
        }
    }

    protected function _initData() {
        $data['collection'] = $this->site_contact_model->get_contacts();
        $data['save_action'] = site_url('admin/site/contact/save', true);
        return $data;
    }

    function save() {
        try {
            $id = $this->input->post('id');
            $mode = $this->input->post('mode');
            $data = $this->input->post('data');
            if (empty($id)) {
                $id = $this->site_contact_model->add_contact($data);
                $this->st_registry->register('admin/site/contact/success', 'Thêm mới thông tin liên hệ thành công');
            } else {
                $this->site_contact_model->update_contact($id, $data);
                $this->st_registry->register('admin/site/contact/success', 'Cập nhật thông tin liên hệ information thành công');
            }            
        } catch (Exception $ex) {
            $this->st_registry->register('admin/site/contact/error', 'Lỗi xảy ra: ' . $ex->getMessage());
        }
        redirect(site_url('admin/site/contact/index', true));
    }
    
    function edit() {
        try {
            $id = $this->input->getParam('id');
            if (empty($id)) {
                throw new Exception('Không tìm thấy thông tin liên hệ');
                exit();
            }
            $data = $this->_initData();
            $data['thông tin liên hệ'] = $this->site_contact_model->load_by_id($id);
            $data['mode'] = 'edit';
            $this->setPageContent('admin/site/contact/grid', $data);
            $this->renderLayout('layouts/fullcolumn');
        } catch (Exception $ex) {
            $this->st_registry->register('admin/site/contact/error', 'Lỗi xảy ra: ' . $ex->getMessage());
        }
    }
    
    function ajax_edit() {
        try {
            $id = $this->input->getParam('id');
            if (empty($id)) {
                throw new Exception('Not Found Contact');
                exit();
            }
            $data['thông tin liên hệ'] = $this->site_contact_model->load_by_id($id);
            $data['save_action'] = site_url('admin/site/contact/save', true);
            $data['mode'] = 'ajax_edit';
            $this->setPageContent('admin/site/contact/ajax/edit', $data);
            $this->renderLayout('layouts/ajax');
        } catch (Exception $ex) {
            $this->st_registry->register('admin/site/contact/error', 'Lỗi xảy ra: ' . $ex->getMessage());
        }
    }    

    function delete() {
        try {
            $id = $this->input->getParam('id');
            if (empty($id)) {
                $this->st_registry->register('admin/site/contact/error', 'Không tìm thấy thông tin liên hệ?');
                redirect(site_url('admin/site/contact/index', true));
                exit();
            }
            $this->site_contact_model->delete_contact($id);
            $this->st_registry->register('admin/site/contact/success', 'Xóa thông tin liên hệ thành công');
        } catch (Exception $ex) {
            $this->st_registry->register('admin/site/contact/error', 'Lỗi xảy ra: ' . $ex->getMessage());
        }
        redirect(site_url('admin/site/contact/index', true));
    }

}